To better appreciate needs satisfied by the teachings of the present invention, consider a scenario where a person calls a company or organization, with the intent of having a conversation with a representative of that company or organization. It is very likely that this person (referred to here as the “Waiting party”) will be put “on hold” to wait in queue before being connected to the representative (referred to here as the “Agent”) for a real-time conversation.
Behind the scenes, the company or organization (referred to here as the “Queuing party”) uses a communication system to maintain a queue of people waiting for an agent (the “Agent Queue”). This communication system is referred to herein as the “Queuing Communication System” or “QCS” and may be referred to in the industry as an “ACD” (“Automatic Call Distributor”) or “Call Management System”. The QCS 135 connects waiting parties to Agents in a “first in, first out” basis, similar to the way a physical queue of people works. The queuing party 130 may have multiple Agent Queues that connect to different types of Agents depending on the phone number called, the time of day, or other criteria. (The term “Queuing party” is used collectively to indicate the company or organization being called, and could also be referred to as “Holding party” which is different from the “On-Hold party”.)
Being put on hold is frustrating for the waiting party 120 because he has to keep his phone connection active (which may result in additional telephony costs and may result in missing other calls) and because he has to keep listening to the audio of the call to hear when it is his turn to talk to the Agent. At the same time, putting callers on hold is detrimental to the queuing party 130 because it means many phone lines have to remain open (which may result in additional telephony costs) and it leads to unhappy callers (which can have detrimental effects on business goals).
According to the embodiments presented below, a better alternative to putting the waiting party 120 on hold is to give him the option for a call-back. That would work as follows:    1) The waiting party 120 is offered by the queuing party 130 the option of a call-back from an agent. This can be through an audio message that the waiting party 120 hears after dialing the queuing party 130, or it can be a visual message that the waiting party 120 sees on a website or mobile app. If he chooses that option he can give the system a Voice Address for the call-back (typically a phone number).    2) After making the request, the waiting party 120 does not have to be on the phone. He can make better use of his time while waiting for the call-back.    3) When the waiting party 120 turn arrives, he receives a call from the queuing party 130 and is connected to the Agent.The approach outlined above is called “virtual queuing”. A critical aspect of virtual queuing is that the waiting party place in the Agent Queue is maintained so that choosing a call-back does not result in a longer wait for the waiting party 120.
Over the years, a variety of prior art approaches have been proposed for virtual queuing including U.S. Pat. Nos. 5,436,967, 5,185,782, and 5,155,761. One flaw that all these approaches share is that they require customization of, modification to, or integration with the existing QCS. Since there is a large variety of hardware and software used for the QCS, this adds significant time and cost, which has hindered the wide-scale use of virtual queuing.